﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
using ComunesMGI.DataTypes;
using System.IO;
using System.ServiceModel.Web;

namespace WebServiceMGI
{
    [ServiceContract]
    public interface IMGIIncidentesWS
    {
        [OperationContract]
        List<DataCampo> getCampos(DataCliente cliente, DataSistema sistema);

        [OperationContract]
        DataAltaIncidente addIncidente(DataSistema incidente, List<DataAttachment> archivos);

        [OperationContract]
        List<DataIncidente> getIncidentes(DataCliente cliente, DataSistema sistema);

        [OperationContract]
        List<DataTarea> getTareas(DataCliente cliente, DataSistema sistema, DataIncidente incidente);

        [OperationContract]
        bool asignarResponsable(DataSistema sistema, DataIncidente incidente, DataTarea tarea, DataUsuario usuario);

        [OperationContract]
        bool addWorkPackage(DataCliente cliente, DataSistema sistema, DataWP workPackage);

        [OperationContract]
        List<DataIncidente> getIncidentesWP(DataSistema sistema, DataWP workPackage);

        [OperationContract]
        List<DataWP> getWorkPackages(DataCliente cliente, DataSistema sistema);

        [OperationContract]
        void asociarIncidenteWP(DataCliente cliente, DataSistema sistema, DataWP workPackage, List<DataIncidente> incidentes);

        [OperationContract]
        List<DataIncidenteReporte> getIncidentesCerradosPeriodo(List<DataSistema> sistemas, DateTime perFchIni, DateTime perFchFin);

        [OperationContract]
        string UploadFile(Stream stream);

        [OperationContract]
        bool adjuntarArchivoIncidente(string nombreArchivo, DataSistema sistema, DataIncidente incidente, string nroTemp);

    }
}
